package com.s10.ecloud.web.dao;

import java.util.List;

import com.s10.ecloud.web.model.Role;
import com.s10.ecloud.web.model.SystemUser;
import com.s10.ecloud.web.model.User;

public interface IUserDAO<U extends User> {

	public abstract List<U> findAllUser();

	public User findUserbyId(User user);

	public abstract List<User> findUserByEMail(String eMail);

	public abstract User updateUser(User user);

	public abstract String userLogin(U user);

	public abstract boolean existUser(String username);

	public abstract void addUser(U user);

	public abstract SystemUser findUserbyUsername(String username);

	public abstract U findUser(U user);

	public abstract void freezeUserstateByUsername(String username);

	public abstract void recoverUserstateByUsername(String username);

	public abstract void updateUserRole(String username, Role role);

	public abstract String updatePassword(int userId, String password);

	public abstract List<U> findAllUserByDep();

	public abstract List<U> findUsersByRole(Role role);

	public abstract List<User> findSysUserByEMail(String eMail);

	public abstract List<User> findIndUserByEMail(String eMail);

	public abstract List<User> findEntUserByEMail(String eMail);

	public abstract List<User> getEntUserByCommerceNo(String commerceNo);

}